public class Kantine { 
    private Kassa kassa; 
    private KassaRij kassarij;
    private Persoon persoon;
    private Dienblad dienblad;
    private Artikel artikel1;
    private Artikel artikel2;
    

    /** 
     * Constructor 
     */ 
    public Kantine()  
    { 
        kassarij=new KassaRij(); // maakt een nieuwe kassarij aan.
        kassa=new Kassa(kassarij); // maakt een nieuwe kassa aan.
    } 

    /** 
     * In deze methode wordt een Persoon en Dienblad gemaakt en aan elkaar 
     * gekoppeld. Maak twee Artikelen aan en plaats deze op het dienblad.    
     * Tenslotte sluit de Persoon zich aan bij de rij voor de kassa. 
     */ 
    public void loopPakSluitAan()  
    { 
        persoon = new Persoon(); // maakt een nieuw persoon aan.
        Dienblad dienblad = new Dienblad(); //maakt een nieuw dienblad aan.
        persoon.pakDienblad(dienblad); // koppelt de persoon aan het dienblad.

        Artikel artikel1 = new Artikel("brood", 1.00); //maakt een nieuw artikel aan met de parameters artikelnaam : Brood en Prijs: 1 euro.
        Artikel artikel2 = new Artikel("broodje", 2.00); //maakt een nieuw artikel aan met de parameters artikelnaam : Broodje en Prijs: 2 euro.
        persoon.pakArtikel(artikel1); // koppelt de persoon aan dit artikel.
        persoon.pakArtikel(artikel2); // koppelt de persoon aan dit artikel.
        kassarij.sluitAchteraan(persoon); // Stopt deze persoon achteraan in de ArrayList.

    } 

    /** 
     * Deze methode handelt de rij voor de kassa af. 
     */ 
    public void verwerkRijVoorKassa()  
    { 
        while(kassarij.erIsEenRij())  
        { 

            persoon = kassarij.eerstePersoonInRij();// haalt de eerste persoon uit de ArrayList. 
            kassa.rekenAf(persoon); // Rekent uit hoeveel de persoon die hierboven uit de ArrayList gehaalt is moet betalen.
        }

    } 

    /** 
     * Deze methode telt het geld uit de kassa 
     * @return hoeveelheid geld in kassa 
     */ 
    public double hoeveelheidGeldInKassa()  
    { 
        return kassa.hoeveelheidGeldInKassa();  
    } 

    /** 
     * Deze methode geeft het aantal gepasseerde artikelen. 
     * @return het aantal gepasseerde artikelen 
     */ 
    public int aantalArtikelen()  
    { 

        return kassa.aantalArtikelen();
    } 

    /**    * Deze methode reset de bijgehouden telling van het aantal artikelen 
     * en "leegt" de inhoud van de kassa. 
     */ 
    public void resetKassa()  
    { 
        kassa.resetKassa(); 
    } 
} 
